<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 原生代码
//         export function nextTick(cb?: Function, ctx?: Object) {
// let _resolve;

// // cb 回调函数会经统一处理压入 callbacks 数组
// callbacks.push(() => {
// if (cb) {
//   // 给 cb 回调函数执行加上了 try-catch 错误处理
//   try {
//     cb.call(ctx);
//   } catch (e) {
//     handleError(e, ctx, 'nextTick');
//   }
// } else if (_resolve) {
//   _resolve(ctx);
// }
// });

// // 执行异步延迟函数 timerFunc
// if (!pending) {
// pending = true;
// timerFunc();
// }

// // 当 nextTick 没有传入函数参数的时候，返回一个 Promise 化的调用
// if (!cb && typeof Promise !== 'undefined') {
// return new Promise(resolve => {
//   _resolve = resolve;
// });
// }
// }



// 所以   nextTick 没有传入函数参数的时候，返回一个 Promise 化的调用 走的是promise的.then  所以
//  nextTick 是微任务  而定时器是微任务 所以会先执行$nextTick 在执行定时器
    </script>
</body>
</html>